(セッションレポート)SEC303-APAC: エンタープライズにおけるエンドツーエンドセキュリティアーキテクチャ #reinvent
この記事は AWS re:Invent 2015、SEC303-APAC - Architecting for End-to-End Security in the Enterprise (APAC track)のレポートです。
スピーカーはスピーカーはAWSのBill ShinnとHart Rossman。
レポート
今日はエンタープライズにおけるセキュリティの話をする。AWSアカウントに対して最初に何をしなければいけないのかを説明したい。また、AWSのセキュリティパターンをハイライトとして説明したい。
セキュリティの基本的なパターン。まずセキュリティプログラムについて。セキュリティのフレームワークは色々なものがある。ISOやPCIなど。どのようなライフサイクルでセキュリティを管理していくのか、どういう挙動をすべきなのかを定義することが必要。必要になるものは3つ。1つは管理フレームワーク。エビデンスを取り、セキュリティ効果を測定するもの。2つ目はロール。大きな組織では権限管理をしっかりしていると思う。管理承認の仕組み、優先順位を付けるものが必要。3つ目はリスク管理。この3本を会社としてしっかりしているところが、新しい機能やサービスをシステムに組み込みやすくなる。
成功したエンタープライズのお客様は何をしているのか?オーナーシップの分担。アプリケーションやデプロイプロセスに責任を持つ人に適切な権限を与え、そして全ての人がそのプロジェクトに参加できるような仕組みが必要だ。セキュリティプログラムへの取り組みについてはしっかりとスケジュール化し戦略として行う必要がある。戦略的なセキュリティにおいてインフラのコード化やDevOpsは重要。
AWSでは共有責任モデルを取っている。セキュリティ管理フレームワークにおいて、MSPやISVなどもそれぞれの責任範囲を持つため重要だ。
AWSのアカウントを新規開設した時に、何が必要になるのか?AWSアカウントに対するオーナーシップを決定、コンタクト情報を設定、それからセールスやサポートにおけるAWSとの関係性。セキュリティベースラインとしては、ルートアカウントに対するMFAの設定が必要。クロスアカウントRoleの設定。CloudTrailを有効化しAPI操作のログを取得。フェデレーションの管理。AWS Config。AWS ConfigによってAWSリソースの関連性が管理できる。
セキュリティのコード化。今年、セキュリティのコードを簡単に管理できるように、AWS CodeDeployをリリースした。LiME ~ Linux Memory Extractor。どのようにセキュリティをコード化するのか?ミッションクリティカルな環境ではセキュリティの管理が重要。クラウドの防御はクラウドで行う。セキュリティインフラ、セキュリティオペレーションを製品やサービスのように取り扱うべき。つまりコードで動作、ビルドで管理できるように。アジャイルでフレキシブルにセキュリティを適用できるようにするべき。
ウォーターフォールで、中くらいの環境でセキュリティを適用する場合、検証に数ヶ月が必要になる。アジャイルでDevOpsなセキュリティコードでは、早く開発し、運用しながら改善が可能。実務的にどう適用するか?ユーザーストーリーを使う。エピックとストーリー。エピックはたくさんのスプリント、ユーザーストーリーはひとつのスプリント。ペルソナなどの設定。やるべきことを具体化し、ショートスパンで進めていく。
AWSのコンプライアンス。AWSはよく知られたセキュリティ認定を取得している他に、お客様向けのドキュメントのリリース、ケーススタディの公開、それからセキュリティデザイン(SbD)。SbDはCloudFormationテンプレートとしてコード提供している。セキュリティ要件ごとにコードをブロック化している。
セキュリティパターン。VPCのPeeringで実現。セキュリティサービスを管理するVPCとその他サービスVPCをPeeringすることで、各VPC、オンプレミスと、ひとつのセキュリティサービスを共有できる。
ユビキタスな暗号化。AWSのサービスでは全てKMSと統合して暗号化できる。データ転送を全て暗号化可能。S3、EBS、RDS、Redshit、Glacier、全てKMSでキー管理ができる。
ユビキタスロギング。AWSの各サービスでログを連携。ログ管理では使っている権限だけでなく使ってない権限もチェックするべき。
DevOpsからDevSecOpsへの変換。継続的な開発のパイプライン。セキュリティインフラのテストとデプロイ。スプリント毎、コードのアップデート毎の脆弱性試験。ポイントは、セキュリティチームをDevOpsチームに巻き込んでいくことだ。これにより、セキュリティインフラを通常のアプリケーション開発のインテグレーションやデプロイと同じプロセスで実行できるようになる。 DevOpsなセキュリティチームの仕事を作る。
どこからスタートするか?AWS CloudTrailを有効化し、AWS API操作をモニタリング。セキュリティチームによるCloudWatchアラートのコード化。セキュリティをコード化し、共有責任モデルをコンポーネント化しよう。